import Calcule.Rebouchage;
import geometrie.Point;
import ihm.ControleurApplication;
import ihm.FenetrePrincipale;
import scene.Cone;
import scene.Cube;
import scene.Cylindre;
import scene.Forme;
import scene.HaltereCarree;
import scene.Pyramide;
import scene.Scene;
import vision.AfficheurScene;

/**
 * Programme principal du TP: crée une scène, puis lance l'interface
 * d'affichage de cette scène.
 * <p>
 * IMPORTANT: A VOUS DE COMPLETER LA METHODE PRIVEE creeScene() !
 */
public class TPVisu3D {
	/**
	 * Point de lancement de l'application. Utilisation: java TPVisu3D.
	 */
	public static void main(String[] args) {
		Scene scene = creeScene();
		int dimU = 800;
		int dimV = 600;
		// 1 pixel == 0.5 unites dans Ref_Scene (ad hoc)
		double taillePixel = 0.5;

		new FenetrePrincipale(new ControleurApplication(new AfficheurScene(
				scene, dimU, dimV, taillePixel), dimU, dimV));
	}

	/**
	 * Crée la scène à afficher dans l'interface. A COMPLETER!
	 */
	private static Scene creeScene() {
		Scene scene = new Scene();

		/*
		 * Il faut initaliser des Objets pour la Scene, pour faire ca; on ecrire
		 * "scene.addModele(new Form( <path:/ fichier>.off ));" ou des objets
		 * avec le nom "scene.addModele(new <Nom> );
		 */

		/* Fichiers */
		// scene.addModele(new Forme(" <path> /temple.off"));
		// scene.addModele(new Forme(" <path> /homer.off"));
		// scene.addModele(new Forme(" <path> /camel.off"));
		// scene.addModele(new Forme(" <path> /rabbit.off"));

		/* Objets */
		/*
		  try { 
			  //scene.addModele(new Pyramide()); 
			  //scene.addModele(new Cube());
			  //Cone c = new Cone(new Point(0,0,0), 30, 90, 10);
			  //c.triangulePolygone(c.getHollow()); //Rebouge le trou
			  //HaltereCarree hc = new HaltereCarree();
			   	  
			 * Ajouter a Scene *
			 
			  //scene.addModele(Objet);
			  
		  } catch (Exception e) {
		  		catch block e.printStackTrace(); }
		 */
		return scene;
	}
}
